//
//  SortQA.swift
//  Swift-LeetCode
//
//  Created by 卢悦明 on 2024/2/29.
//

import UIKit

class SortQA {

    static func QA() {
        let array = [6, 2, 7, 3, 1, 8, 5, 9];
        print(array)
        let array1 = QuickSort().sort(array)
        print(array1)
//        var nums1 = [2, 3, 6, 7, -1, -1, -1]
//        let nums2 = [1, 4, 5]
//        merge(&nums1, 4, nums2, 3)
        
    }
    
    static func merge(_ nums1: inout [Int], _ m: Int, _ nums2: [Int], _ n: Int) {
        var left = m - 1
        var max = nums1.count - 1
        while (left >= 0) {
            nums1[max] = nums1[left]
            left -= 1
            max -= 1
        }
        print(nums1, nums2)

        var li = 0
        let le = n
        var ri = nums1.count - m
        let re = nums1.count
        var index = 0
        print(li, le, ri, re, index)
        while li < le {
            if ri < re && nums1[ri] < nums2[li] {
                nums1[index] = nums1[ri]
                ri += 1
                index += 1
            } else {
                nums1[index] = nums2[li]
                li += 1
                index += 1
            }
        }
        print("最后********", nums1)
        
//        var array = [Int]()
//        var index1 = 0
//        var index2 = 0
//        while index1 < m || index2 < n {
//            if index1 == m {
//                array.append(nums2[index2])
//                index2 += 1
//            } else if index2 == n {
//                array.append(nums1[index1])
//                index1 += 1
//            } else if nums1[index1] <= nums2[index2] {
//                array.append(nums1[index1])
//                index1 += 1
//            } else if nums1[index1] > nums2[index2] {
//                array.append(nums2[index2])
//                index2 += 1
//            }
//        }
//        nums1 = array

    }
    
    
}
